<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<!-- Mirrored from www.wolfssl.com/wolfSSL/Docs-kerberos-android-ndk.html by HTTrack Website Copier/3.x [XR&CO'2014], Tue, 17 Jan 2017 13:24:43 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=UTF-8" /><!-- /Added by HTTrack -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="Generator" content="iWeb 3.0.4"/>
<meta name="iWeb-Build" content="local-build-20170103"/>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
<meta name="viewport" content="width=770"/>
<title>wolfSSL - Docs | Java GSS-API Android NDK Example Application</title>
<link rel="stylesheet" type="text/css" media="screen,print" href="Docs-kerberos-android-ndk_files/Docs-kerberos-android-ndk.css"/>
<!--[if lt IE 8]><link rel='stylesheet' type='text/css' media='screen,print' href='Docs-kerberos-android-ndk_files/Docs-kerberos-android-ndkIE.css'/><![endif]-->
<!--[if gte IE 8]><link rel='stylesheet' type='text/css' media='screen,print' href='Media/IE8.css'/><![endif]-->
<script type="text/javascript" src="Scripts/iWebSite.js"></script>
<script type="text/javascript" src="Docs-kerberos-android-ndk_files/Docs-kerberos-android-ndk.js"></script>
<meta name="description" content="Provides an example Android NDK app using the Java GSS-API wrapper and the MIT Kerberos libraries."/><meta name="keywords" content="embedded ssl, ssl library, embedded web server, openssl alternative, openssl replacement, cyassl, stream ciphers ssl, aes-ni ssl, dtls, mysql ssl, portable ssl, ssl portable, portable tls, small openssl, smart grid, connected home, ecc, lightweight ssl, suite b, encryption security software, ssl inspection"/><meta name="robots" content="follow,index"/> <script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','../../www.google-analytics.com/analytics.js','ga');ga('create','UA-64826966-1','auto');ga('send','pageview');</script>
 
<script>//<![CDATA[
window.zEmbed||function(e,t){var n,o,d,i,s,a=[],r=document.createElement("iframe");window.zEmbed=function(){a.push(arguments)},window.zE=window.zE||window.zEmbed,r.src="javascript:false",r.title="",r.role="presentation",(r.frameElement||r).style.cssText="display: none",d=document.getElementsByTagName("script"),d=d[d.length-1],d.parentNode.insertBefore(r,d),i=r.contentWindow,s=i.document;try{o=s}catch(c){n=document.domain,r.src='javascript:var d=document.open();d.domain="'+n+'";void(0);',o=s}o.open()._l=function(){var o=this.createElement("script");n&&(this.domain=n),o.id="js-iframe-async",o.src=e,this.t=+new Date,this.zendeskHost=t,this.zEQueue=a,this.body.appendChild(o)},o.write('<body onload="document._l();">'),o.close()}("../../assets.zendesk.com/embeddable_framework/main.js","wolfssl.zendesk.com");
//]]></script>
  </head>
<body style="background: rgb(255, 255, 255); margin: 0pt; " onload="onPageLoad();">
<div style="text-align: center; ">
<div style="margin-bottom: 20px; margin-left: auto; margin-right: auto; margin-top: 20px; overflow: hidden; position: relative; word-wrap: break-word;  background: rgb(255, 255, 255); text-align: left; width: 770px; " id="body_content">
<div style="float: left; margin-left: 0px; position: relative; width: 770px; z-index: 0; " id="nav_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
<div style="clear: both; height: 0px; line-height: 0px; " class="spacer"> </div>
</div>
<div style="float: left; height: 0px; line-height: 0px; margin-left: 0px; position: relative; width: 770px; z-index: 10; " id="header_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
</div>
<div style="margin-left: 0px; position: relative; width: 770px; z-index: 5; " id="body_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
<div id="id1" style="height: 62px; left: 339px; position: absolute; top: 157px; width: 397px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_397_62" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style">MIT Kerberos: Android NDK Example App</p>
</div>
</div>
</div>
<div id="id2" style="height: 3311px; left: 35px; position: absolute; top: 251px; width: 701px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_701_3311" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-top: 0pt; " class="paragraph_style_1">Introduction<span class="style"><br/></span></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2">This is a sample Android NDK application which provides a GUI wrapper around the MIT Kerberos kinit, klist, kvno, and kdestroy client applications. It also provides a sample client which uses the Java GSS-API interface. The GSS-API interface is a Java interface for the existing native MIT GSS-API library.<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2">This package includes cross-compiled versions of the MIT Kerberos libraries as well as the CyaSSL Embedded SSL Library. It should be helpful to Android developers who are interested in using the Kerberos libraries or the GSS-API interface in their own Android NDK Applications.<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2">By default, this package uses pre-built static Kerberos and CyaSSL libraries which are needed in order to be linked to the KerberosApp application's native library (libkerberosapp.so).<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2">For detailed information on the Java GSS-API interface, please see the GSSAPI_README file included in this project's root directory or see the kerberos-java-gssapi project on GitHub, here:<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2"><a title="https://github.com/cconlon/kerberos-java-gssapi" href="https://github.com/cconlon/kerberos-java-gssapi">https://github.com/cconlon/kerberos-java-gssapi</a><br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_3">Table of Contents<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_4">1. Requirements<br/></p>
<p class="paragraph_style_4">2. Building<br/></p>
<p class="paragraph_style_4">3. Installing<br/></p>
<p class="paragraph_style_4">4. Usage<br/></p>
<p class="paragraph_style_4">5. Default Storage Locations<br/></p>
<p class="paragraph_style_4">6. Library Versions<br/></p>
<p class="paragraph_style_4">7. Licenses<br/></p>
<p class="paragraph_style_4">8. Support<br/></p>
<p class="paragraph_style_4">9. References<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_3">1. Requirements<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2">Before building or installing this package, you must have the Android SDK and NDK installed and set up on your system. It is also helpful to have the Android Emulator setup and configured with an Android platform greater than or equal to version 2.3.3 (Gingerbread). For details on downloading and setting these up, please see the following links:<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2">Android SDK:  <a title="http://developer.android.com/sdk/index.html" href="http://developer.android.com/sdk/index.html">http://developer.android.com/sdk/index.html</a><br/></p>
<p class="paragraph_style_2">Android NDK:  <a title="http://developer.android.com/sdk/ndk/index.html" href="http://developer.android.com/sdk/ndk/index.html">http://developer.android.com/sdk/ndk/index.html</a><br/></p>
<p class="paragraph_style_2">Android Emulator: <a title="https://developer.android.com/guide/developing/tools/emulator.html" href="https://developer.android.com/guide/developing/tools/emulator.html">https://developer.android.com/guide/developing/tools/emulator.html</a><br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2">SWIG will also need to be installed in order to build the underlying GSS-API wrapper. To download and install SWIG, please visit see the project homepage at <a title="http://www.swig.org/" href="http://www.swig.org/">http://www.swig.org</a>. This project has been developed using SWIG version 1.3.40 running on Linux.<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_3">2. Building<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2">To build and install this package, including Java GSS-API bindings, run the following commands. <br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_5">android update project -p . -s<br/></p>
<p class="paragraph_style_5">swig -java -package edu.mit.jgss.swig -outdir ./src/edu/mit/jgss/swig<br/></p>
<p class="paragraph_style_5">     -o ./jni/gsswrapper_wrap.c ./jni/gsswrapper.i<br/></p>
<p class="paragraph_style_5">ndk-build<br/></p>
<p class="paragraph_style_5">ant debug<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2">If you want to rebuild the pre-built Kerberos libraries, please use the android-config.sh shell script. This will allow the MIT Kerberos libraries to be cross-compiled for the Android platform. More detailed instructions can be found in the script comments.<br/></p>
<p class="paragraph_style_6"><br/></p>
<p class="paragraph_style_7">3. Installing<br/></p>
<p class="paragraph_style_6"><br/></p>
<p class="paragraph_style_6">To install this package in a running Android emulator, run:<br/></p>
<p class="paragraph_style_6"><br/></p>
<p class="paragraph_style_8">ant &lt;debug&gt; install<br/></p>
<p class="paragraph_style_6"><br/></p>
<p class="paragraph_style_6">Where &lt;debug&gt; is either &quot;debug&quot; or &quot;release&quot;, depending on what build configuration used with ndk-build.<br/></p>
<p class="paragraph_style_6"><br/></p>
<p class="paragraph_style_6">Before running the KerberosApp application, the user needs to install both a Keytab file and a Kerberos configuration file. Reference the MIT Kerberos documentation for guidelines for creating these files. Once created, they can be installed using the adb push command, using:<br/></p>
<p class="paragraph_style_6"><br/></p>
<p class="paragraph_style_8">adb push &lt;local-file-path&gt; &lt;destination-file-path&gt;<br/></p>
<p class="paragraph_style_6"><br/></p>
<p class="paragraph_style_6">For example, to load a krb5.conf and krb5.keytab file from the current directory to an Android emulator under the /data/local/kerberos directory, run:<br/></p>
<p class="paragraph_style_6"><br/></p>
<p class="paragraph_style_8">adb push krb5.conf /data/local/kerberos/<br/></p>
<p class="paragraph_style_8">adb push krb5.keytab /data/local/kerberos/<br/></p>
<p class="paragraph_style_6"><br/></p>
<p class="paragraph_style_6">If the application is set to use a client keytab instead of a password, the keytab file needs to contain an entry for the client principal (whose TGT will be obtained by using the &quot;kinit&quot; button in the sample Application).<br/></p>
<p class="paragraph_style_6"><br/></p>
<p class="paragraph_style_9">NOTE: hosts file<br/></p>
<p class="paragraph_style_6"><br/></p>
<p class="paragraph_style_6">If you need to edit the hosts file on the android emulator to accommodate for KDC locations, use the following steps:<br/></p>
<p class="paragraph_style_6"><br/></p>
<p class="paragraph_style_8">emulator -avd &lt;name&gt; -partition-size 128<br/></p>
<p class="paragraph_style_8">adb remount<br/></p>
<p class="paragraph_style_8">adb pull /system/etc/hosts ./<br/></p>
<p class="paragraph_style_8">&lt;&lt; edit hosts file on local machine &gt;&gt;<br/></p>
<p class="paragraph_style_8">adb push ./hosts /system/etc<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_3">4. Usage<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2">This NDK application's GUI is split into three tabs:<br/></p>
<p class="paragraph_style_2"><br/></p>
<ol>
<li style="line-height: 15px; padding-left: 30px; text-indent: -15px; " class="full-width" value="1">
<p style="text-indent: -15px; " class="paragraph_style_10"><span style="font-size: 12px; " class="Bullet">1.</span><span style="width: 5px; " class="inline-block"></span>Client Info<br/></p>
</li>
<li style="line-height: 15px; padding-left: 30px; text-indent: -15px; " class="full-width" value="2">
<p style="text-indent: -15px; " class="paragraph_style_10"><span style="font-size: 12px; " class="Bullet">2.</span><span style="width: 5px; " class="inline-block"></span>Server Info<br/></p>
</li>
<li style="line-height: 15px; padding-left: 30px; text-indent: -15px; " class="full-width" value="3">
<p style="text-indent: -15px; " class="paragraph_style_10"><span style="font-size: 12px; " class="Bullet">3.</span><span style="width: 5px; " class="inline-block"></span>Client App<br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_2">These tabs should be addressed in the order they are listed above. A short summary of each is below.<br/></p>
<p class="paragraph_style_2"><br/></p>
<ol>
<li style="line-height: 15px; padding-left: 30px; text-indent: -15px; " class="full-width" value="1">
<p style="text-indent: -15px; " class="paragraph_style_10"><span style="font-size: 12px; " class="Bullet">1.</span><span style="width: 5px; " class="inline-block"></span>Client Info<br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<ol>
<li style="line-height: 15px; padding-left: 30px; text-indent: -30px; " class="full-width">
<p style="text-indent: -30px; " class="paragraph_style_11"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 30px; " class="inline-block"></span>This tab displays the wrappers around native kinit, klist, kvno, and kdestroy application code. It provides the functionality to get a ticket for a given client principal using either a keytab or password for principal authentication. The default configuration file and credential cache locations are listed on this screen as well.<br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<ol>
<li style="line-height: 15px; padding-left: 30px; text-indent: -15px; " class="full-width" value="2">
<p style="text-indent: -15px; " class="paragraph_style_10"><span style="font-size: 12px; " class="Bullet">2.</span><span style="width: 5px; " class="inline-block"></span>Server Info<br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<ol>
<li style="line-height: 15px; padding-left: 30px; text-indent: -30px; " class="full-width">
<p style="text-indent: -30px; " class="paragraph_style_11"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 30px; " class="inline-block"></span>This tab allows the user to enter information about the server which the client application will attempt to make a GSS-API connection with in Tab 3. Server principal name, IP address, and port number should be given in this tab.<br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<ol>
<li style="line-height: 15px; padding-left: 30px; text-indent: -15px; " class="full-width" value="3">
<p style="text-indent: -15px; " class="paragraph_style_10"><span style="font-size: 12px; " class="Bullet">3.</span><span style="width: 5px; " class="inline-block"></span>Client App<br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<ol>
<li style="line-height: 15px; padding-left: 30px; text-indent: -30px; " class="full-width">
<p style="text-indent: -30px; " class="paragraph_style_11"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 30px; " class="inline-block"></span>This tab allows the user to start the client GSS-API application. The client application will attempt to connect to the GSS-API server given in Tab 2, using the client principal info gathered in Tab 1. This client application was designed to connect to the example server from the kerberos-java-gssapi package. The client app will do the following:<br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<ol>
<li style="line-height: 15px; padding-left: 60px; text-indent: -15px; " class="full-width" value="1">
<p style="text-indent: -15px; " class="paragraph_style_12"><span style="font-size: 12px; " class="Bullet">a.</span><span style="width: 5px; " class="inline-block"></span>Establish a GSS-API context with the example server<br/></p>
</li>
<li style="line-height: 15px; padding-left: 60px; text-indent: -15px; " class="full-width" value="2">
<p style="text-indent: -15px; " class="paragraph_style_12"><span style="font-size: 12px; " class="Bullet">b.</span><span style="width: 5px; " class="inline-block"></span>Sign, encrypt, and send a message to the server<br/></p>
</li>
<li style="line-height: 15px; padding-left: 60px; text-indent: -15px; " class="full-width" value="3">
<p style="text-indent: -15px; " class="paragraph_style_12"><span style="font-size: 12px; " class="Bullet">c.</span><span style="width: 6px; " class="inline-block"></span>Verify the signature block returned by the server<br/></p>
</li>
</ol>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_3">5. Default Storage Locations<br/></p>
<p class="paragraph_style_2"><br/></p>
<p class="paragraph_style_13">The following locations are the default paths used for the Kerberos sample application.<br/></p>
<p class="paragraph_style_13"><br/></p>
<p class="paragraph_style_13"><span class="style_1">Kerberos config file</span>:  /data/local/kerberos/krb5.conf<br/></p>
<p class="paragraph_style_13"><span class="style_1">Credentials cache</span>:  /data/local/kerberos/ccache/krb5cc_&lt;uid&gt;<br/></p>
<p class="paragraph_style_13"><span class="style_1">Keytab</span>:  /data/local/kerberos/krb5.keytab<br/></p>
<p class="paragraph_style_13"><br/></p>
<p class="paragraph_style_13">The credentials cache location may be changed in KerberosAppActivity.java. The Kerberos config file and keytab file locations may be changed by editing the default locations in ./include/osconf.h when cross compiling the MIT kerberos libraries.<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_15">6. Library Versions<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">At the time of writing,the CyaSSL and Kerberos libraries used in this package were:<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">CyaSSL 2.0.0rc3     <br/></p>
<ol>
<li style="line-height: 15px; padding-left: 15px; text-indent: -15px; " class="full-width">
<p style="text-indent: -15px; " class="paragraph_style_16"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 15px; " class="inline-block"></span><a title="http://www.yassl.com/" href="http://www.yassl.com/">http://www.yassl.com</a><br/></p>
</li>
</ol>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">Kerberos (cconlon krb5 fork) GitHub master<br/></p>
<ol>
<li style="line-height: 15px; padding-left: 15px; text-indent: -15px; " class="full-width">
<p style="text-indent: -15px; " class="paragraph_style_16"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 15px; " class="inline-block"></span>Repository: <a title="http://github.com/cconlon/krb5" href="http://github.com/cconlon/krb5">http://github.com/cconlon/krb5</a><br/></p>
</li>
<li style="line-height: 15px; padding-left: 15px; text-indent: -15px; " class="full-width">
<p style="text-indent: -15px; " class="paragraph_style_16"><span style="font-size: 0px; position: relative; top: -7px; " class="Bullet"></span><span style="width: 15px; " class="inline-block"></span>Homepage: <a title="http://web.mit.edu/kerberos/" href="http://web.mit.edu/kerberos/">http://web.mit.edu/kerberos/</a><br/></p>
</li>
</ol>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_17">7. Licenses<br/></p>
<p class="paragraph_style_18"><br/></p>
<p class="paragraph_style_19">CyaSSL Embedded SSL Library<br/></p>
<p class="paragraph_style_18"><br/></p>
<p class="paragraph_style_18"> * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.<br/></p>
<p class="paragraph_style_18"> *<br/></p>
<p class="paragraph_style_18"> * CyaSSL is free software; you can redistribute it and/or modify<br/></p>
<p class="paragraph_style_18"> * it under the terms of the GNU General Public License as published by<br/></p>
<p class="paragraph_style_18"> * the Free Software Foundation; either version 2 of the License, or<br/></p>
<p class="paragraph_style_18"> * (at your option) any later version.<br/></p>
<p class="paragraph_style_18"> *<br/></p>
<p class="paragraph_style_18"> * CyaSSL is distributed in the hope that it will be useful,<br/></p>
<p class="paragraph_style_18"> * but WITHOUT ANY WARRANTY; without even the implied warranty of<br/></p>
<p class="paragraph_style_18"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br/></p>
<p class="paragraph_style_18"> * GNU General Public License for more details.<br/></p>
<p class="paragraph_style_18"> *<br/></p>
<p class="paragraph_style_18"> * You should have received a copy of the GNU General Public License<br/></p>
<p class="paragraph_style_18"> * along with this program; if not, write to the Free Software<br/></p>
<p class="paragraph_style_18"> * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA<br/></p>
<p class="paragraph_style_18"><br/></p>
<p class="paragraph_style_19">MIT Kerberos Libraries and Application Code:<br/></p>
<p class="paragraph_style_18"><br/></p>
<p class="paragraph_style_18"> * Copyright (C) 2012 by the Massachusetts Institute of Technology.<br/></p>
<p class="paragraph_style_18"> * All rights reserved.<br/></p>
<p class="paragraph_style_18"> *<br/></p>
<p class="paragraph_style_18"> * Redistribution and use in source and binary forms, with or without<br/></p>
<p class="paragraph_style_18"> * modification, are permitted provided that the following conditions<br/></p>
<p class="paragraph_style_18"> * are met:<br/></p>
<p class="paragraph_style_18"> *<br/></p>
<p class="paragraph_style_18"> * * Redistributions of source code must retain the above copyright<br/></p>
<p class="paragraph_style_18"> *   notice, this list of conditions and the following disclaimer.<br/></p>
<p class="paragraph_style_18"> *<br/></p>
<p class="paragraph_style_18"> * * Redistributions in binary form must reproduce the above copyright<br/></p>
<p class="paragraph_style_18"> *   notice, this list of conditions and the following disclaimer in<br/></p>
<p class="paragraph_style_18"> *   the documentation and/or other materials provided with the<br/></p>
<p class="paragraph_style_18"> *   distribution.<br/></p>
<p class="paragraph_style_18"> *<br/></p>
<p class="paragraph_style_18"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS<br/></p>
<p class="paragraph_style_18"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT<br/></p>
<p class="paragraph_style_18"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS<br/></p>
<p class="paragraph_style_18"> * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE<br/></p>
<p class="paragraph_style_18"> * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,<br/></p>
<p class="paragraph_style_18"> * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES<br/></p>
<p class="paragraph_style_18"> * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR<br/></p>
<p class="paragraph_style_18"> * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)<br/></p>
<p class="paragraph_style_18"> * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,<br/></p>
<p class="paragraph_style_18"> * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)<br/></p>
<p class="paragraph_style_18"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED<br/></p>
<p class="paragraph_style_18"> * OF THE POSSIBILITY OF SUCH DAMAGE.<br/></p>
<p class="paragraph_style_18"><br/></p>
<p class="paragraph_style_17">8. Support<br/></p>
<p class="paragraph_style_18"><br/></p>
<p class="paragraph_style_14">If you have any questions or comments, please post to the krbdev mailing list (<a title="http://web.mit.edu/kerberos/mail-lists.html" href="http://web.mit.edu/kerberos/mail-lists.html">http://web.mit.edu/kerberos/mail-lists.html</a>) or contact <a title="mailto:support@wolfssl.com?subject=" href="https://www.wolfssl.com/cdn-cgi/l/email-protection#10636560607f626450677f7c7663637c3e737f7d2f6365727a7573642d"><span class="__cf_email__" data-cfemail="7e0d0b0e0e110c0a3e091112180d0d12501d1113">[email&#160;protected]</span><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script></a>.<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_15">9. References<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">MIT Kerberos:<a title="http://web.mit.edu/kerberos/" href="http://web.mit.edu/kerberos/"> http://web.mit.edu/kerberos/</a><br/></p>
<p class="paragraph_style_14">wolfSSL:<a title="http://www.wolfssl.com/" href="http://www.wolfssl.com/"> http://www.wolfssl.com/</a><br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">Kerberos Java GSS-API Wrapper:<a title="https://github.com/cconlon/kerberos-java-gssapi" href="https://github.com/cconlon/kerberos-java-gssapi"> https://github.com/cconlon/kerberos-java-gssapi</a><br/></p>
<p class="paragraph_style_14">Example GSS-API Android NDK App:<a title="https://github.com/cconlon/kerberos-android-ndk" href="https://github.com/cconlon/kerberos-android-ndk"> https://github.com/cconlon/kerberos-android-ndk</a><br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">RFC 5653:  <a title="http://tools.ietf.org/html/rfc5653" href="http://tools.ietf.org/html/rfc5653">http://tools.ietf.org/html/rfc5653</a><br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14"><br/></p>
<p style="padding-bottom: 0pt; " class="paragraph_style_20">Copyright 2017 wolfSSL Inc.  All rights reserved.</p>
</div>
</div>
</div>
<div id="id3" style="height: 26px; left: 193px; position: absolute; top: 122px; width: 268px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_268_26" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_21"><a class="class1" title="Docs.html" href="Docs.html">Docs</a> <span class="style_2">-&gt;</span> <span class="style_3">MIT Kerberos: Android NDK Example App</span></p>
</div>
</div>
</div>
<div style="height: 1px; width: 698px;  height: 1px; left: 37px; position: absolute; top: 230px; width: 698px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 698px; ">
<img src="Docs-kerberos-android-ndk_files/shapeimage_1.jpg" alt="" style="height: 1px; left: 0px; position: absolute; top: 0px; width: 698px; "/>
</div>
</div>
<div style="height: 37px; width: 545px;  height: 37px; left: 191px; position: absolute; top: 80px; width: 545px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 545px; ">
<img src="Docs-kerberos-android-ndk_files/shapeimage_2.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 545px; "/>
</div>
</div>
<div id="id4" style="height: 25px; left: 200px; position: absolute; top: 84px; width: 43px; z-index: 1; " class="style_SkipStroke_1 shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_43_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_22"><a class="class2" title="Home.html" href="Home.html">Home</a></p>
</div>
</div>
</div>
<div id="id5" style="height: 25px; left: 365px; position: absolute; top: 84px; width: 72px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_72_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_23"><a class="class3" title="https://wolfssl.com/wolfSSL/download/downloadForm.php" href="https://wolfssl.com/wolfSSL/download/downloadForm.php">Download</a></p>
</div>
</div>
</div>
<div id="id6" style="height: 25px; left: 439px; position: absolute; top: 84px; width: 59px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_59_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_23"><a class="class4" title="License.html" href="License.html">License</a></p>
</div>
</div>
</div>
<div id="id7" style="height: 25px; left: 499px; position: absolute; top: 84px; width: 44px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_44_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_23"><a class="class5" title="Blog/Blog.html" href="Blog/Blog.html">Blog</a></p>
</div>
</div>
</div>
<div id="id8" style="height: 25px; left: 589px; position: absolute; top: 84px; width: 80px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_80_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_23"><a class="class6" title="Community.html" href="Community.html">Community</a></p>
</div>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 245px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-kerberos-android-ndk_files/shapeimage_3.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 296px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-kerberos-android-ndk_files/shapeimage_4.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 363px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-kerberos-android-ndk_files/shapeimage_5.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 438px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-kerberos-android-ndk_files/shapeimage_6.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 498px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-kerberos-android-ndk_files/shapeimage_7.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 589px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-kerberos-android-ndk_files/shapeimage_8.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div id="id9" style="height: 25px; left: 671px; position: absolute; top: 84px; width: 61px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_61_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_23"><a class="class7" title="Contact.html" href="Contact.html">Contact</a></p>
</div>
</div>
</div>
<div id="id10" style="height: 25px; left: 249px; position: absolute; top: 84px; width: 44px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_44_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_22"><a class="class8" title="About.html" href="About.html">About</a></p>
</div>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 670px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-kerberos-android-ndk_files/shapeimage_9.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div id="id11" style="height: 25px; left: 298px; position: absolute; top: 84px; width: 63px; z-index: 1; " class="style_SkipStroke_1 shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_63_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_23"><a class="class9" title="Products.html" href="Products.html">Products</a></p>
</div>
</div>
</div>
<div id="id12" style="height: 25px; left: 549px; position: absolute; top: 84px; width: 41px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_41_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_22"><a class="class10" title="Docs.html" href="Docs.html">Docs</a></p>
</div>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 545px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-kerberos-android-ndk_files/shapeimage_10.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div id="id13" style="height: 27px; left: 59px; position: absolute; top: 200px; width: 196px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_196_27" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_24"><a class="class11" title="http://www.yassl.com/documentation/kerberos/kerberos_android_ndk_app.pdf" href="http://www.yassl.com/documentation/kerberos/kerberos_android_ndk_app.pdf">Download PDF</a></p>
</div>
</div>
</div>
<div style="height: 22px; width: 22px;  height: 22px; left: 33px; position: absolute; top: 201px; width: 22px; z-index: 1; " class="tinyText style_SkipStroke_2">
<img src="Docs-kerberos-android-ndk_files/PDF.png" alt="" style="border: none; height: 22px; width: 22px; "/>
</div>
<div style="height: 16px; width: 20px;  height: 16px; left: 706px; position: absolute; top: 51px; width: 20px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 20px; ">
<img src="Docs-kerberos-android-ndk_files/shapeimage_11.png" alt="" style="height: 16px; left: 0px; position: absolute; top: 0px; width: 20px; "/>
</div>
</div>
<div style="height: 19px; width: 19px;  height: 19px; left: 707px; position: absolute; top: 25px; width: 19px; z-index: 1; " class="tinyText style_SkipStroke_2">
<img src="Docs-kerberos-android-ndk_files/United%20Kingdom(Great%20Britain).png" alt="" style="border: none; height: 19px; width: 19px; "/>
</div>
<div id="id14" style="height: 23px; left: 328px; position: absolute; top: 48px; width: 258px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_258_23" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_25">Questions? +1 (425) 245-8247</p>
</div>
</div>
</div>
<div style="height: 19px; width: 19px;  height: 19px; left: 685px; position: absolute; top: 25px; width: 19px; z-index: 1; " class="tinyText style_SkipStroke_2">
<a href="http://www.wolfssl.jp/" title="http://www.wolfssl.jp"><img src="Docs-kerberos-android-ndk_files/japan.png" alt="" style="border: none; height: 19px; width: 19px; "/></a>
</div>
<div id="id15" style="height: 28px; left: 593px; position: absolute; top: 44px; width: 119px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_119_28" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_26"><a class="class12" title="https://www.wolfssl.com/forums" href="https://www.wolfssl.com/forums">Support <span class="style_4">Forums</span></a></p>
</div>
</div>
</div>
<div style="height: 121px; width: 155px;  height: 121px; left: 32px; position: absolute; top: 5px; width: 155px; z-index: 1; " class="tinyText style_SkipStroke_2">
<a href="Home.html" title="Home.html"><img src="Docs-kerberos-android-ndk_files/wolfssl_logo.png" alt="" style="border: none; height: 121px; width: 156px; "/></a>
</div>
<div style="height: 3562px; line-height: 3562px; " class="spacer"> </div>
</div>
<div style="height: 100px; margin-left: 0px; position: relative; width: 770px; z-index: 15; " id="footer_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
</div>
</div>
</div>
 <script type="text/javascript">/* <![CDATA[ */(function(d,s,a,i,j,r,l,m,t){try{l=d.getElementsByTagName('a');t=d.createElement('textarea');for(i=0;l.length-i;i++){try{a=l[i].href;s=a.indexOf('/cdn-cgi/l/email-protection');m=a.length;if(a&&s>-1&&m>28){j=28+s;s='';if(j<m){r='0x'+a.substr(j,2)|0;for(j+=2;j<m&&a.charAt(j)!='X';j+=2)s+='%'+('0'+('0x'+a.substr(j,2)^r).toString(16)).slice(-2);j++;s=decodeURIComponent(s)+a.substr(j,m-j)}t.innerHTML=s.replace(/</g,'&lt;').replace(/>/g,'&gt;');l[i].href='mailto:'+t.value}}catch(e){}}}catch(e){}})(document);/* ]]> */</script></body>

<!-- Mirrored from www.wolfssl.com/wolfSSL/Docs-kerberos-android-ndk.html by HTTrack Website Copier/3.x [XR&CO'2014], Tue, 17 Jan 2017 13:24:54 GMT -->
</html>
